/**
 * 中间件的分类：
 * 1. 应用级中间件
 *    - 全局生效的中间件
 *    - 局部中间件
 * 2. 路由级中间件
 *    - 绑定到express.Router实例上的中间件
 *    - 与应用级中间件的区别：应用级的中间件时绑定到app对象上的，路由级的中间件是绑定到Router对象上的
 * 3. 错误处理中间件
 *   - 用于处理错误的中间件
 *   - 错误处理中间件和其他中间件定义方式一样，但是有四个参数：err, req, res, next
 * 4. 内置中间件
 *  - express.static() 静态资源中间件,快速托管静态资源的内置中间件，例如：图片、css、js等
 *  - express.json() 解析json数据的中间件
 *  - express.urlencoded() 解析 URL-encoded 格式的请求体数据
 * 5. 第三方中间件
 *  - body-parser 解析post请求体数据
 *  - cookie-parser 解析cookie数据
 *  - multer 解析文件上传的数据
 *  -使用步骤：
 *      1.安装第三方中间件
 *      2.使用require引入第三方中间件
 *      3.调用app.use()注册第三方中间件
 * 6. 自定义中间件： 
 *   监听 req 的 data 事件和 end 事件，获取客户端发送过来的数据
 *   1.通过 req 的 on() 方法监听 data 事件
 *   2.如果数据量比较大，会多次触发 data 事件，每次触发 data 事件，都会将获取到的数据拼接到一个数组中
 *   3.通过 req 的 on() 方法监听 end 事件，当 end 事件触发时，表示所有的数据都发送完毕
 * 
 * querystring模块: nodejs内置模块，用于处理查询字符串
 * 1. querystring.stringify() 将对象转换为查询字符串
 * 2. querystring.parse() 将查询字符串转换为对象
 */

const myBodyParser = require('./myBodyParser')

const express = require('express')

const app = express()

app.use(myBodyParser)

